home *** CD-ROM | disk | FTP | other *** search
/ PC World 2007 December / PCWorld_2007-12_cd.bin / v cisle / fma / fma-2.1-beta-4-setup.exe / {app} / help / script56.chm / local / script.js < prev    next >
Text File  |  2005-12-12  |  25KB  |  1,275 lines

  1. window.onload=LoadPage;
  2. window.onunload=Window_Unload;
  3. //window.onresize=ResizeWindow;
  4. window.onbeforeprint = set_to_print;
  5. window.onafterprint = reset_form;
  6.  
  7. var vbDeclaration;
  8. var vbUsage;
  9. var csLang;
  10. var cLang;
  11. var jsharpLang;
  12. var jsLang;
  13.  
  14. var scrollPos = 0;
  15.  
  16. var inheritedMembers;
  17. var protectedMembers;
  18. var netcfMembersOnly;
  19.  
  20.  
  21. // Initialize array of section states
  22.  
  23. var sectionStates = new Array();
  24. var sectionStatesInitialized = false;
  25. var allCollapsed = false;
  26. var allExpanded = false;
  27.  
  28. function InitSectionStates()
  29. {
  30.     // SectionStates has the format:
  31.     //
  32.     //     firstSectionId:state;secondSectionId:state;thirdSectionId:state; ... ;lastSectionId:state
  33.     //
  34.     // where state is either "e" (expanded) or "c" (collapsed)
  35.     
  36.     allExpanded = Load("AllExpanded");
  37.     allCollapsed = Load("AllCollapsed");
  38.     
  39.     if (allExpanded == null || allCollapsed == null)
  40.     {
  41.         allExpanded = true;
  42.         allCollapsed = false;
  43.     }
  44.     
  45.     var states = Load("SectionStates");
  46.     if (states == null || states == "") return;
  47.     
  48.     var start = 0;
  49.     var end;
  50.     var section;
  51.     var state;
  52.     
  53.     while (start < states.length)
  54.     {
  55.         end = states.indexOf(":", start);
  56.         
  57.         section = states.substring(start, end);
  58.         
  59.         start = end + 1;
  60.         end = states.indexOf(";", start);
  61.         if (end == -1) end = states.length;
  62.         
  63.         state = states.substring(start, end);
  64.         
  65.         sectionStates[section] = (allExpanded) ? "e" : state;
  66.         
  67.         start = end + 1;
  68.     }
  69. }
  70.  
  71. var noReentry = false;
  72.  
  73. function OnLoadImage()
  74. {
  75.     if (noReentry) return;
  76.     
  77.     if (!sectionStatesInitialized) 
  78.     {
  79.         globals = GetGlobals();
  80.         InitSectionStates(); 
  81.         sectionStatesInitialized = true; 
  82.     }
  83.     
  84.     elem = event.srcElement;
  85.     
  86.     if (sectionStates[elem.id] == null) sectionStates[elem.id] = GetDefaultState();
  87.         
  88.     if (ShouldExpand(elem))
  89.     {
  90.         noReentry = true;
  91.         
  92.         try
  93.         {
  94.             elem.src = collapseImage.src;
  95.             elem.alt = collapseImage.alt;
  96.             
  97.             ExpandSection(elem);
  98.         }
  99.         catch (e)
  100.         {
  101.         }
  102.         
  103.         noReentry = false;
  104.     }
  105. }
  106.  
  107. function GetDefaultState()
  108. {
  109.     if (allExpanded) return "e";
  110.     if (allCollapsed) return "c";
  111.     
  112.     return "e";
  113. }
  114.  
  115. function ShouldExpand(elem)
  116. {
  117.     return (allExpanded || sectionStates[elem.id] == "e");
  118. }
  119.  
  120.  
  121. /*    
  122. **********
  123. **********   Begin
  124. **********
  125. */
  126.  
  127. function LoadPage()
  128. {
  129.     // If not initialized, grab the DTE.Globals object
  130.     if (globals == null) globals = GetGlobals();
  131.     
  132.     // show correct language
  133.     LoadLanguages();
  134.     LoadMembersOptions();
  135.     
  136.     Set_up_checkboxes();
  137.  
  138.     DisplayLanguages();
  139.     
  140.     if (inheritedMembers == "off") DisplayInheritedMembers();
  141.     if (protectedMembers == "off") DisplayProtectedMembers();
  142.     if (netcfMembersOnly == "on") DisplayNETCFMembers();
  143.         
  144.     ChangeMembersOptionsFilterLabel();
  145.     
  146.     SetCollapseAll();
  147.  
  148. //    ResizeWindow();
  149.     // split screen
  150.     var screen = new SplitScreen('header', 'mainSection');
  151.  
  152.     // filtering dropdowns
  153.     if (document.getElementById('languageSpan') != null) {
  154.         var languageMenu = new Dropdown('languageFilterToolTip', 'languageSpan');
  155.     }
  156.     if (document.getElementById('membersOptionsFilterToolTip') != null) {
  157.         var languageMenu = new Dropdown('membersOptionsFilterToolTip', 'membersOptionsSpan');
  158.     }
  159.  
  160.     
  161.     // vs70.js did this to allow up/down arrow scrolling, I think
  162.     try { mainSection.setActive(); } catch(e) { }
  163.  
  164.     //set the scroll position
  165.     try{mainSection.scrollTop = scrollPos;}
  166.     catch(e){}
  167. }
  168.  
  169. function Window_Unload()
  170. {
  171.     SaveLanguages();
  172.     SaveMembersOptions();
  173.     SaveSections();
  174. }
  175.  
  176. /*
  177. function ResizeWindow()
  178. {
  179.     if (document.body.clientWidth==0) return;
  180.     var header = document.all.item("header");
  181.     var mainSection = document.all.item("mainSection");
  182.     if (mainSection == null) return;
  183.     
  184.     
  185.     document.body.scroll = "no"
  186.     mainSection.style.overflow= "auto";
  187.     header.style.width= document.body.offsetWidth - 2;
  188.     //mainSection.style.paddingRight = "20px"; // Width issue code
  189.     mainSection.style.width= document.body.offsetWidth - 2;
  190.     mainSection.style.top=0;  
  191.     if (document.body.offsetHeight > header.offsetHeight + 10)
  192.         mainSection.style.height= document.body.offsetHeight - (header.offsetHeight + 2);
  193.     else
  194.         mainSection.style.height=0;
  195.     
  196.     try
  197.     {
  198.         mainSection.setActive();
  199.     }
  200.     catch(e)
  201.     {
  202.     }
  203. }
  204. */
  205.  
  206. function set_to_print()
  207. {
  208.     //breaks out of divs to print
  209.     var i;
  210.  
  211.     if (window.text)document.all.text.style.height = "auto";
  212.             
  213.     for (i=0; i < document.all.length; i++)
  214.     {
  215.         if (document.all[i].tagName == "body")
  216.         {
  217.             document.all[i].scroll = "yes";
  218.         }
  219.         if (document.all[i].id == "header")
  220.         {
  221.             document.all[i].style.margin = "0px 0px 0px 0px";
  222.             document.all[i].style.width = "100%";
  223.         }
  224.         if (document.all[i].id == "mainSection")
  225.         {
  226.             document.all[i].style.overflow = "visible";
  227.             document.all[i].style.top = "5px";
  228.             document.all[i].style.width = "100%";
  229.             document.all[i].style.padding = "0px 10px 0px 30px";
  230.         }
  231.     }
  232. }
  233.  
  234. function reset_form()
  235. {
  236.     //returns to the div nonscrolling region after print
  237.      document.location.reload();
  238. }
  239.  
  240. function Set_up_checkboxes()
  241. {
  242.     var checkbox;
  243.     
  244.     checkbox = document.getElementById("vbDeclarationCheckbox");
  245.     if(checkbox != null)
  246.     {
  247.         if(vbDeclaration == "on")
  248.             checkbox.checked = true;
  249.         else
  250.             checkbox.checked = false;
  251.     }
  252.     
  253.     checkbox = document.getElementById("vbUsageCheckbox");
  254.     if(checkbox != null)
  255.     {
  256.         if(vbUsage == "on")
  257.             checkbox.checked = true;
  258.         else
  259.             checkbox.checked = false;
  260.     }
  261.         
  262.     checkbox = document.getElementById("csCheckbox");
  263.     if(checkbox != null)
  264.     {
  265.         if(csLang == "on")
  266.             checkbox.checked = true;
  267.         else
  268.             checkbox.checked = false;
  269.     }
  270.         
  271.     checkbox = document.getElementById("cCheckbox");
  272.     if(checkbox != null)
  273.     {
  274.         if(cLang == "on")
  275.             checkbox.checked = true;
  276.         else
  277.             checkbox.checked = false;
  278.     }
  279.     
  280.     checkbox = document.getElementById("jsharpCheckbox");
  281.     if(checkbox != null)
  282.     {
  283.         if(jsharpLang == "on")
  284.             checkbox.checked = true;
  285.         else
  286.             checkbox.checked = false;
  287.     }
  288.         
  289.     checkbox = document.getElementById("jsCheckbox");
  290.     if(checkbox != null)
  291.     {
  292.         if(jsLang == "on")
  293.             checkbox.checked = true;
  294.         else
  295.             checkbox.checked = false;
  296.     }
  297.     
  298.     checkbox = document.getElementById("inheritedCheckbox");
  299.     if(checkbox != null)
  300.     {
  301.         if(inheritedMembers == "on")
  302.             checkbox.checked = true;
  303.         else
  304.             checkbox.checked = false;
  305.     }
  306.     
  307.     checkbox = document.getElementById("protectedCheckbox");
  308.     if(checkbox != null)
  309.     {
  310.         if(protectedMembers == "on")
  311.             checkbox.checked = true;
  312.         else
  313.             checkbox.checked = false;
  314.     }
  315.     
  316.     checkbox = document.getElementById("netcfCheckbox");
  317.     if(checkbox != null)
  318.     {
  319.         if(netcfMembersOnly == "on")
  320.             checkbox.checked = true;
  321.         else
  322.             checkbox.checked = false;
  323.     }
  324. }
  325.  
  326. /*    
  327. **********
  328. **********   End
  329. **********
  330. */
  331.  
  332.  
  333. /*    
  334. **********
  335. **********   Begin Language Filtering
  336. **********
  337. */
  338.  
  339. function SetLanguage(key)
  340. {
  341.     var i = 0;
  342.     if(vbDeclaration == "on")
  343.         i++;
  344.     if(vbUsage == "on")
  345.         i++;
  346.     if(csLang == "on")
  347.         i++;
  348.     if(cLang == "on")
  349.         i++;
  350.     if(jsharpLang == "on")
  351.         i++;
  352.     if(jsLang == "on")
  353.         i++;
  354.     
  355.     if(key.id == "vbDeclarationCheckbox")
  356.     {
  357.         if(vbDeclaration == "on")
  358.         {
  359.             if(i == 1)
  360.             {
  361.                 key.checked = true;
  362.                 return;
  363.             }
  364.                 
  365.             vbDeclaration = "off";
  366.         }
  367.         else
  368.             vbDeclaration = "on";
  369.     }
  370.     if(key.id == "vbUsageCheckbox")
  371.     {
  372.         if(vbUsage == "on")
  373.         {
  374.             if(i == 1)
  375.             {
  376.                 key.checked = true;
  377.                 return;
  378.             }
  379.                 
  380.             vbUsage = "off";
  381.         }
  382.         else
  383.             vbUsage = "on";
  384.     }
  385.     if(key.id == "csCheckbox")
  386.     {
  387.         if(csLang == "on")
  388.         {
  389.             if(i == 1)
  390.             {
  391.                 key.checked = true;
  392.                 return;
  393.             }
  394.             
  395.             csLang = "off";
  396.         }
  397.         else
  398.             csLang = "on";
  399.     }
  400.     if(key.id == "cCheckbox")
  401.     {
  402.         if(cLang == "on")
  403.         {
  404.             if(i == 1)
  405.             {
  406.                 key.checked = true;
  407.                 return;
  408.             }
  409.                 
  410.             cLang = "off";
  411.         }
  412.         else
  413.             cLang = "on";
  414.     }
  415.     if(key.id == "jsharpCheckbox")
  416.     {
  417.         if(jsharpLang == "on")
  418.         {
  419.             if(i == 1)
  420.             {
  421.                 key.checked = true;
  422.                 return;
  423.             }
  424.                 
  425.             jsharpLang = "off";
  426.         }
  427.         else
  428.             jsharpLang = "on";
  429.     }
  430.     if(key.id == "jsCheckbox")
  431.     {
  432.         if(jsLang == "on")
  433.         {
  434.             if(i == 1)
  435.             {
  436.                 key.checked = true;
  437.                 return;
  438.             }
  439.                 
  440.             jsLang = "off";
  441.         }
  442.         else
  443.             jsLang = "on";
  444.     }
  445.     
  446.     DisplayLanguages();
  447. }
  448.  
  449. function DisplayLanguages()
  450. {
  451.     var spanElements = document.all.tags("span");
  452.     
  453.     var x = 0;
  454.     if(vbDeclaration == "on")
  455.         x++;
  456.     if(vbUsage == "on")
  457.         x++;
  458.     if(csLang == "on")
  459.         x++;
  460.     if(cLang == "on")
  461.         x++;
  462.     if(jsharpLang == "on")
  463.         x++;
  464.     if(jsLang == "on")
  465.         x++;
  466.     
  467.     var i;
  468.     for(i = 0; i < spanElements.length; ++i)
  469.     {
  470.         if(spanElements[i].codeLanguage != null)
  471.         {
  472.             if(spanElements[i].codeLanguage == "VisualBasic")
  473.             {
  474.                 if(vbDeclaration == "on" || vbUsage == "on")
  475.                     spanElements[i].style.display = "";
  476.                 else
  477.                     spanElements[i].style.display = "none";
  478.             }
  479.             if(spanElements[i].codeLanguage == "VisualBasicDeclaration")
  480.             {
  481.                 if(vbDeclaration == "on")
  482.                     spanElements[i].style.display = "";
  483.                 else
  484.                     spanElements[i].style.display = "none";
  485.             }
  486.             if(spanElements[i].codeLanguage == "VisualBasicUsage")
  487.             {
  488.                 if(vbUsage == "on")
  489.                     spanElements[i].style.display = "";
  490.                 else
  491.                     spanElements[i].style.display = "none";
  492.             }
  493.             if(spanElements[i].codeLanguage == "CSharp")
  494.             {
  495.                 if(csLang == "on")
  496.                     spanElements[i].style.display = "";
  497.                 else
  498.                     spanElements[i].style.display = "none";
  499.             }
  500.             if(spanElements[i].codeLanguage == "ManagedCPlusPlus")
  501.             {
  502.                 if(cLang == "on")
  503.                     spanElements[i].style.display = "";
  504.                 else
  505.                     spanElements[i].style.display = "none";
  506.             }
  507.             if(spanElements[i].codeLanguage == "JSharp")
  508.             {
  509.                 if(jsharpLang == "on")
  510.                     spanElements[i].style.display = "";
  511.                 else
  512.                     spanElements[i].style.display = "none";
  513.             }
  514.             if(spanElements[i].codeLanguage == "JScript")
  515.             {
  516.                 if(jsLang == "on")
  517.                     spanElements[i].style.display = "";
  518.                 else
  519.                     spanElements[i].style.display = "none";
  520.             }
  521.             
  522.             if(spanElements[i].codeLanguage == "NotVisualBasicUsage")
  523.             {
  524.                 if((x == 1) && (vbUsage == "on"))
  525.                 {
  526.                     spanElements[i].style.display = "none";
  527.                 }
  528.                 else
  529.                 {
  530.                     spanElements[i].style.display = "";
  531.                 }
  532.             }
  533.         }
  534.     }
  535.     ChangeLanguageFilterLabel();
  536. }
  537.  
  538. function ChangeLanguageFilterLabel()
  539. {    
  540.     var i = 0;
  541.     if(vbDeclaration == "on")
  542.         i++;
  543.     if(vbUsage == "on")
  544.         i++;
  545.     if(csLang == "on")
  546.         i++;
  547.     if(cLang == "on")
  548.         i++;
  549.     if(jsharpLang == "on")
  550.         i++;
  551.     if(jsLang == "on")
  552.         i++;
  553.         
  554.     var labelElement;
  555.     
  556.     labelElement = document.getElementById("showAllLabel");
  557.     
  558.     if(labelElement == null)
  559.         return;
  560.         
  561.     labelElement.style.display = "none";
  562.     
  563.     labelElement = document.getElementById("multipleLabel");
  564.     labelElement.style.display = "none";
  565.     
  566.     labelElement = document.getElementById("vbLabel");
  567.     labelElement.style.display = "none";
  568.     
  569.     labelElement = document.getElementById("csLabel");
  570.     labelElement.style.display = "none";
  571.     
  572.     labelElement = document.getElementById("cLabel");
  573.     labelElement.style.display = "none";
  574.     
  575.     labelElement = document.getElementById("jsharpLabel");
  576.     labelElement.style.display = "none";
  577.     
  578.     labelElement = document.getElementById("jsLabel");
  579.     labelElement.style.display = "none";
  580.     
  581.     if(i == 6)
  582.     {
  583.         labelElement = document.getElementById("showAllLabel");
  584.         labelElement.style.display = "inline";
  585.     }
  586.     else if ((i > 1) && (i < 6))
  587.     {
  588.         if((i == 2) && ((vbDeclaration == "on") && (vbUsage == "on")))
  589.         {
  590.             labelElement = document.getElementById("vbLabel");
  591.             labelElement.style.display = "inline";
  592.         }
  593.         else
  594.         {
  595.             labelElement = document.getElementById("multipleLabel");
  596.             labelElement.style.display = "inline";
  597.         }
  598.     }
  599.     else if (i == 1)
  600.     {
  601.         if(vbDeclaration == "on" || vbUsage == "on")
  602.         {
  603.             labelElement = document.getElementById("vbLabel");
  604.             labelElement.style.display = "inline";
  605.         }
  606.         if(csLang == "on")
  607.         {
  608.             labelElement = document.getElementById("csLabel");
  609.             labelElement.style.display = "inline";
  610.         }
  611.         if(cLang == "on")
  612.         {
  613.             labelElement = document.getElementById("cLabel");
  614.             labelElement.style.display = "inline";
  615.         }
  616.         if(jsharpLang == "on")
  617.         {
  618.             labelElement = document.getElementById("jsharpLabel");
  619.             labelElement.style.display = "inline";
  620.         }
  621.         if(jsLang == "on")
  622.         {
  623.             labelElement = document.getElementById("jsLabel");
  624.             labelElement.style.display = "inline";
  625.         }
  626.     }
  627. }
  628.  
  629. function LoadLanguages()
  630. {
  631.     var value;
  632.     value = Load("vbDeclaration");
  633.     if(value == null)
  634.         vbDeclaration = "on";
  635.     else
  636.         vbDeclaration = value;
  637.         
  638.     value = Load("vbUsage");
  639.     if(value == null)
  640.         vbUsage = "on";
  641.     else
  642.         vbUsage = value;
  643.         
  644.     value = Load("csLang");
  645.     if(value == null)
  646.         csLang = "on";
  647.     else
  648.         csLang = value;
  649.         
  650.     value = Load("cLang");
  651.     if(value == null)
  652.         cLang = "on";
  653.     else
  654.         cLang = value;
  655.     
  656.     value = Load("jsharpLang");
  657.     if(value == null)
  658.         jsharpLang = "on";
  659.     else
  660.         jsharpLang = value;
  661.         
  662.     value = Load("jsLang");
  663.     if(value == null)
  664.         jsLang = "on";
  665.     else
  666.         jsLang = value;
  667. }
  668.  
  669. function SaveLanguages()
  670. {
  671.     Save("vbDeclaration", vbDeclaration);
  672.     Save("vbUsage", vbUsage);
  673.     Save("csLang", csLang);
  674.     Save("cLang", cLang);
  675.     Save("jsharpLang", jsharpLang);
  676.     Save("jsLang", jsLang);
  677. }
  678.  
  679. /*    
  680. **********
  681. **********   End Language Filtering
  682. **********
  683. */
  684.  
  685.  
  686. /*    
  687. **********
  688. **********   Begin Members Options Filtering
  689. **********
  690. */
  691.  
  692. function SetMembersOptions(key)
  693. {
  694.     if(key.id == "inheritedCheckbox")
  695.     {
  696.         if(key.checked == true)
  697.             inheritedMembers = "on";
  698.         else
  699.             inheritedMembers = "off";
  700.         
  701.         DisplayInheritedMembers();
  702.     }
  703.     if(key.id == "protectedCheckbox")
  704.     {
  705.         if(key.checked == true)
  706.             protectedMembers = "on";
  707.         else
  708.             protectedMembers = "off";
  709.         
  710.         DisplayProtectedMembers();
  711.     }
  712.     if(key.id == "netcfCheckbox")
  713.     {
  714.         if(key.checked == true)
  715.             netcfMembersOnly = "on";
  716.         else
  717.             netcfMembersOnly = "off";
  718.     
  719.         DisplayNETCFMembers();
  720.     }
  721.     
  722.     ChangeMembersOptionsFilterLabel();
  723. }
  724.  
  725. function DisplayInheritedMembers()
  726. {
  727.     var iMembers = document.all.tags("tr");
  728.     var i;
  729.     
  730.     if(inheritedMembers == "off")
  731.     {    
  732.         for(i = 0; i < iMembers.length; ++i)
  733.         {
  734.             if(iMembers[i].name == "inheritedMember")
  735.                 iMembers[i].style.display = "none";
  736.         }
  737.     }
  738.     else
  739.     {
  740.         for(i = 0; i < iMembers.length; ++i)
  741.         {
  742.             if(iMembers[i].name == "inheritedMember")
  743.             {
  744.                 if(netcfMembersOnly == "on")
  745.                 {
  746.                     if(iMembers[i].notSupportedOn == "netcf")
  747.                     {
  748.                         iMembers[i].style.display = "none";
  749.                     }
  750.                     else
  751.                     {
  752.                         iMembers[i].style.display = "";
  753.                     }
  754.                 }
  755.                 else
  756.                     iMembers[i].style.display = "";
  757.             }
  758.         }
  759.     }
  760. }
  761.  
  762. function DisplayProtectedMembers()
  763. {
  764.     var imgElements = document.getElementsByName("toggleSwitch");
  765.     var i;
  766.     
  767.     if(protectedMembers == "off")
  768.     {
  769.         for(i = 0; i < imgElements.length; ++i)
  770.         {
  771.             if(imgElements[i].id.indexOf("Family", 0) == 0)
  772.             {
  773.                 if(ItemCollapsed(imgElements[i].id) == false)
  774.                 {
  775.                     ExpandCollapse(imgElements[i]);
  776.                 }
  777.             }
  778.         }
  779.     }
  780.     else
  781.     {
  782.         for(i = 0; i < imgElements.length; ++i)
  783.         {
  784.             if(imgElements[i].id.indexOf("Family", 0) == 0)
  785.             {
  786.                 if(ItemCollapsed(imgElements[i].id) == true)
  787.                 {
  788.                     ExpandCollapse(imgElements[i]);
  789.                 }
  790.             }
  791.         }
  792.     }
  793.         
  794. }
  795.  
  796. function DisplayNETCFMembers()
  797. {
  798.     var netcfMembers = document.all.tags("tr");
  799.     var i;
  800.     
  801.     if(netcfMembersOnly == "off")
  802.     {    
  803.         for(i = 0; i < netcfMembers.length; ++i)
  804.         {
  805.             if(netcfMembers[i].notSupportedOn == "netcf")
  806.             {
  807.                 netcfMembers[i].style.display = "";
  808.             }
  809.         }
  810.         DisplayInheritedMembers();
  811.     }
  812.     else
  813.     {
  814.         for(i = 0; i < netcfMembers.length; ++i)
  815.         {
  816.             if(netcfMembers[i].notSupportedOn == "netcf")
  817.             {
  818.                 netcfMembers[i].style.display = "none";
  819.             }
  820.         }
  821.     }
  822. }
  823.  
  824. function ChangeMembersOptionsFilterLabel()
  825. {    
  826.  
  827.     var filtered = false;
  828.     
  829.     if((inheritedMembers=="off") || (protectedMembers=="off") || (netcfMembersOnly=="on"))
  830.         filtered = true;
  831.         
  832.     var labelElement;
  833.     
  834.     labelElement = document.getElementById("showAllMembersLabel");
  835.     
  836.     if(labelElement == null)
  837.         return;
  838.         
  839.     labelElement.style.display = "none";
  840.     
  841.     labelElement = document.getElementById("filteredMembersLabel");
  842.     labelElement.style.display = "none";
  843.     
  844.     if(filtered)
  845.     {
  846.         labelElement = document.getElementById("filteredMembersLabel");
  847.         labelElement.style.display = "inline";
  848.     }
  849.     else
  850.     {
  851.         labelElement = document.getElementById("showAllMembersLabel");
  852.         labelElement.style.display = "inline";
  853.     }
  854. }
  855.  
  856. function LoadMembersOptions()
  857. {
  858.     var value;
  859.     value = Load("inheritedMembers");
  860.     if(value == null)
  861.         inheritedMembers = "on";
  862.     else
  863.         inheritedMembers = value;
  864.         
  865.     value = Load("protectedMembers");
  866.     if(value == null)
  867.         protectedMembers = "on";
  868.     else
  869.         protectedMembers = value;
  870.         
  871.     value = Load("netcfMembersOnly");
  872.     if(value == null)
  873.         netcfMembersOnly = "off";
  874.     else
  875.         netcfMembersOnly = value;
  876. }
  877.  
  878. function SaveMembersOptions()
  879. {
  880.     Save("inheritedMembers", inheritedMembers);
  881.     Save("protectedMembers", protectedMembers);
  882.     Save("netcfMembersOnly", netcfMembersOnly);
  883. }
  884.  
  885. /*    
  886. **********
  887. **********   End Members Options Filtering
  888. **********
  889. */
  890.  
  891.  
  892. /*    
  893. **********
  894. **********   Begin Expand/Collapse
  895. **********
  896. */
  897.  
  898. function ExpandCollapse(imageItem)
  899. {
  900.     noReentry = true; // Prevent entry to OnLoadImage
  901.     
  902.     if (ItemCollapsed(imageItem.id) == true)
  903.     {
  904.         imageItem.src = collapseImage.src;
  905.         imageItem.alt = collapseImage.alt;
  906.         
  907.         ExpandSection(imageItem);
  908.         
  909.         if (imageItem.id.indexOf("Family", 0) == 0)
  910.         {
  911.             protectedMembers = "on";
  912.             Set_up_checkboxes();
  913.             ChangeMembersOptionsFilterLabel();
  914.         }
  915.     }
  916.     else
  917.     {
  918.         imageItem.src = expandImage.src;
  919.         imageItem.alt = expandImage.alt;
  920.         
  921.         CollapseSection(imageItem);
  922.     }
  923.     
  924.     allCollapsed = false;
  925.     allExpanded = false;
  926.  
  927.     SetCollapseAll();
  928.     
  929.     noReentry = false;
  930. }
  931.  
  932. function ExpandCollapseAll(imageItem)
  933. {
  934.     noReentry = true; // Prevent entry to OnLoadImage
  935.     
  936.     var imgElements = document.getElementsByName("toggleSwitch");
  937.     var i;
  938.     
  939.     if (imageItem.src == expandAllImage.src)
  940.     {
  941.         imageItem.src = collapseAllImage.src;
  942.         imageItem.alt = collapseAllImage.alt;
  943.  
  944.         for (i = 0; i < imgElements.length; ++i)
  945.         {
  946.             imgElements[i].src = collapseImage.src;
  947.             imgElements[i].alt = collapseImage.alt;
  948.             
  949.             ExpandSection(imgElements[i]);
  950.             
  951.             if (imgElements[i].id.indexOf("Family", 0) == 0) protectedMembers = "on";
  952.         }
  953.         
  954.         SetToggleAllLabel(false);
  955.         
  956.         allExpanded = true;
  957.         allCollapsed = false;
  958.     }
  959.     else
  960.     {
  961.         imageItem.src = expandAllImage.src;
  962.         imageItem.alt = expandAllImage.alt;
  963.  
  964.         for (i = 0; i < imgElements.length; ++i)
  965.         {
  966.             imgElements[i].src = expandImage.src;
  967.             imgElements[i].alt = expandImage.alt;
  968.             
  969.             CollapseSection(imgElements[i]);
  970.         }
  971.         
  972.         SetToggleAllLabel(true);
  973.         
  974.         allExpanded = false;
  975.         allCollapsed = true;
  976.     }
  977.     
  978.     noReentry = false;
  979. }
  980.  
  981. function ExpandCollapse_CheckKey(imageItem)
  982. {
  983.     if(window.event.keyCode == 13)
  984.         ExpandCollapse(imageItem);
  985. }
  986.  
  987. function ExpandCollapseAll_CheckKey(imageItem)
  988. {
  989.     if(window.event.keyCode == 13)
  990.         ExpandCollapseAll(imageItem);
  991. }
  992.  
  993. function ExpandSection(imageItem)
  994. {
  995.     try
  996.     {
  997.         imageItem.parentElement.parentElement.nextSibling.style.display    = "";
  998.         sectionStates[imageItem.id] = "e";
  999.     }
  1000.     catch (e)
  1001.     {
  1002.     }
  1003. }
  1004.  
  1005. function CollapseSection(imageItem)
  1006. {
  1007.     try
  1008.     {
  1009.         imageItem.parentElement.parentElement.nextSibling.style.display    = "none";
  1010.         sectionStates[imageItem.id] = "c";
  1011.     }
  1012.     catch (e)
  1013.     {
  1014.     }
  1015. }
  1016.  
  1017. function SetCollapseAll()
  1018. {
  1019.     var imageElement = document.getElementById("toggleAllImage");
  1020.     
  1021.     if (imageElement == null) return;
  1022.     
  1023.     if (allCollapsed)
  1024.     {
  1025.         imageElement.src = expandAllImage.src;
  1026.         imageElement.alt = expandAllImage.alt;
  1027.     }
  1028.     else
  1029.     {
  1030.         imageElement.src = collapseAllImage.src;
  1031.         imageElement.alt = collapseAllImage.alt;
  1032.     }
  1033.     
  1034.     SetToggleAllLabel(allCollapsed);
  1035. }
  1036.  
  1037. function SetToggleAllLabel(collapseAll)
  1038. {
  1039.     var labelElement = document.getElementById("collapseAllLabel");
  1040.     
  1041.     if (labelElement == null) return;
  1042.         
  1043.     labelElement.style.display = "none";
  1044.     
  1045.     labelElement = document.getElementById("expandAllLabel");
  1046.     labelElement.style.display = "none";
  1047.     
  1048.     if (collapseAll)
  1049.     {
  1050.         labelElement = document.getElementById("expandAllLabel");
  1051.         labelElement.style.display = "inline";
  1052.     }
  1053.     else
  1054.     {
  1055.         labelElement = document.getElementById("collapseAllLabel");
  1056.         labelElement.style.display = "inline";
  1057.     }
  1058. }
  1059.  
  1060. function ItemCollapsed(imageId)
  1061. {
  1062.     return sectionStates[imageId] == "c";
  1063. }
  1064.  
  1065. function SaveSections()
  1066. {
  1067.     try
  1068.     {
  1069.         var states = "";
  1070.     
  1071.         for (var sectionId in sectionStates) states += sectionId + ":" + sectionStates[sectionId] + ";";
  1072.  
  1073.         Save("SectionStates", states.substring(0, states.length - 1));
  1074.     }
  1075.     catch (e)
  1076.     {
  1077.     }
  1078.     
  1079.     Save("AllExpanded", allExpanded);
  1080.     Save("AllCollapsed", allCollapsed);
  1081. }
  1082.  
  1083. function ShouldSave(imageId)
  1084. {
  1085.     var toggleName;
  1086.     
  1087.     if(imageId == "toggleAllImage")
  1088.         return false;
  1089.     
  1090.     toggleName = "procedureToggle";
  1091.     if(imageId.indexOf(toggleName, 0) == 0)
  1092.         return false;
  1093.         
  1094.     toggleName = "sectionToggle";
  1095.     if(imageId.indexOf(toggleName, 0) == 0)
  1096.         return false;
  1097.     
  1098.     return true;
  1099. }
  1100.  
  1101. function OpenSection(imageItem)
  1102. {
  1103.     if (sectionStates[imageItem.id] == "c") ExpandCollapse(imageItem);
  1104. }
  1105.  
  1106. /*    
  1107. **********
  1108. **********   End Expand/Collapse
  1109. **********
  1110. */
  1111.  
  1112.  
  1113.  
  1114. /*    
  1115. **********
  1116. **********   Begin Copy Code
  1117. **********
  1118. */
  1119.  
  1120. function CopyCode(key)
  1121. {
  1122.     var trElements = document.all.tags("tr");
  1123.     var i;
  1124.     for(i = 0; i < trElements.length; ++i)
  1125.     {
  1126.         if(key.parentElement.parentElement.parentElement == trElements[i].parentElement)
  1127.         {
  1128.             window.clipboardData.setData("Text", trElements[i].innerText);
  1129.         }
  1130.     }
  1131. }
  1132.  
  1133. function ChangeCopyCodeIcon(key)
  1134. {
  1135.     var i;
  1136.     var imageElements = document.getElementsByName("ccImage")
  1137.     for(i=0; i<imageElements.length; ++i)
  1138.     {
  1139.         if(imageElements[i].parentElement == key)
  1140.         {
  1141.             if(imageElements[i].src == copyImage.src)
  1142.             {
  1143.                 imageElements[i].src = copyHoverImage.src;
  1144.                 imageElements[i].alt = copyHoverImage.alt;
  1145.             }
  1146.             else
  1147.             {
  1148.                 imageElements[i].src = copyImage.src;
  1149.                 imageElements[i].alt = copyImage.alt;
  1150.             }
  1151.         }
  1152.     }
  1153. }
  1154.  
  1155. function CopyCode_CheckKey(key)
  1156. {
  1157.     if(window.event.keyCode == 13)
  1158.         CopyCode(key);
  1159. }
  1160.  
  1161. /*    
  1162. **********
  1163. **********   End Copy Code
  1164. **********
  1165. */
  1166.  
  1167.  
  1168. /*    
  1169. **********
  1170. **********   Begin Maintain Scroll Position
  1171. **********
  1172. */
  1173.  
  1174. function loadAll(){
  1175.     try 
  1176.     {
  1177.         scrollPos = allHistory.getAttribute("Scroll");
  1178.     }
  1179.     catch(e){}
  1180. }
  1181.  
  1182. function saveAll(){
  1183.     try
  1184.     {
  1185.         allHistory.setAttribute("Scroll", mainSection.scrollTop);
  1186.     }
  1187.     catch(e){}
  1188. }
  1189.  
  1190. /*    
  1191. **********
  1192. **********   End Maintain Scroll Position
  1193. **********
  1194. */
  1195.  
  1196.  
  1197. /*    
  1198. **********
  1199. **********   Begin Send Mail
  1200. **********
  1201. */
  1202.  
  1203. function formatMailToLink(anchor)
  1204. {
  1205.     var release = "Release: " + anchor.doc_Release;
  1206.     var topicId = "Topic ID: " + anchor.doc_TopicID;
  1207.     var topicTitle = "Topic Title: " + anchor.doc_TopicTitle;
  1208.     var url = "URL: " + document.URL;
  1209.     var browser = "Browser: " + window.navigator.userAgent;
  1210.  
  1211.     var crlf = "%0d%0a"; 
  1212.     var body = release + crlf + topicId + crlf + topicTitle + crlf + url + crlf + browser + crlf + crlf + "Comments:" + crlf + crlf;
  1213.     
  1214.     anchor.href = anchor.href + "&body=" + body;
  1215. }
  1216.  
  1217. /*    
  1218. **********
  1219. **********   End Send Mail
  1220. **********
  1221. */
  1222.  
  1223.  
  1224. /*    
  1225. **********
  1226. **********   Begin Persistence
  1227. **********
  1228. */
  1229.  
  1230. var globals;
  1231.  
  1232. function GetGlobals()
  1233. {
  1234.     var tmp;
  1235.     
  1236.     // Try to get VS implementation
  1237.     try { tmp = window.external.Globals; }
  1238.     catch (e) { tmp = null; }
  1239.     
  1240.     // Try to get DExplore implementation
  1241.     try { if (tmp == null) tmp = window.external.GetObject("DTE", "").Globals; }
  1242.     catch (e) { tmp = null; }
  1243.     
  1244.     return tmp;
  1245. }
  1246.  
  1247. function Load(key)
  1248. {
  1249.     try 
  1250.     {
  1251.         return globals.VariableExists(key) ? globals.VariableValue(key) : null;
  1252.     }
  1253.     catch (e)
  1254.     {
  1255.         return null;
  1256.     }
  1257. }
  1258.  
  1259. function Save(key, value)
  1260. {
  1261.     try
  1262.     {
  1263.         globals.VariableValue(key) = value;
  1264.         globals.VariablePersists(key) = true;
  1265.     }
  1266.     catch (e)
  1267.     {
  1268.     }
  1269. }
  1270.  
  1271. /*    
  1272. **********
  1273. **********   End Persistence
  1274. **********
  1275. */